#include <sys/types.h>
#include <unistd.h>
#include <errno.h>
#include <stdlib.h>
#include <sys/wait.h>
#include <stdio.h>

int main(void){
  int n,t, status;
  FILE* fichero;
  printf("Introduzca el numero de escrituras: ");
  scanf("%d", &n);

  fichero = fopen("fichero.txt", "w");
  pid_t pid;
  pid = fork();

  for(t = 0; t< n; t++){
    switch(pid){
        case -1: //ERROR
          perror("Fork Error");
          printf("Errno value = %d\n", errno);
          exit(EXIT_FAILURE);
        break;

        case 0: //PROCESO HIJO (+)
            fputc('+', fichero);
            fflush(fichero);
            sleep(1);
          break;

        default: //PROCESO PADRE (-)
            fputc('-', fichero);
            fflush(fichero);
            sleep(1);
    }
  }
  if(pid == 0){
    exit(EXIT_SUCCESS);
  }
  else{
    while(pid!=wait(&status));
    fclose(fichero);
    if(execlp("gedit","gedit","fichero.txt",NULL)==-1)
    {
      perror("Falla en la ejecucion exec");
      printf("errno value= %d\n", errno);
      exit(EXIT_FAILURE);
    }
  }
  return 0;
}
